package decrypt

import (
	"fmt"

	"gitee.com/micro-plat/sas/sas/modules/auth/conf"
	"gitee.com/micro-plat/sas/sas/modules/util"
)

//desDecryptMap 解密des数据map
func desDecryptMap(data map[string]string, key string, cfg *conf.AuthConfig) (map[string]string, error) {
	cipherCfg := cfg.Params["des"]
	if cipherCfg == nil {
		return nil, fmt.Errorf("未找到des相关的配置")
	}
	//兼容以前的ingrain,所以默认使用以下的解密模式
	mode := fmt.Sprintf("%s/%s", cipherCfg.Mode, cipherCfg.Padding)
	for k, v := range data {
		dec, err := util.DESDecrypt(v, key, mode)
		if err != nil {
			return nil, fmt.Errorf("DES解密出错: %v", err)
		}
		data[k] = dec
	}
	return data, nil
}
